用Apache2没有碰到这个问题,WordPress可以自动配置。到了Nginx,虽然在WordPress里设置了重写规则,单实际却没有起效,文章链接直接就失效了。
应该是rewrite规则的问题。
在server部分加入
[php] try_files $uri $uri/ /index.php?q=$uri&$args;[/php]
意思是把所有不存在的文件和目录,全都转到 index.php 处理
这样,我要求的效果就达到了。
不过这样一直会出现 /index.php
如果用rewrite方式可以这样写
[php]
rewrite ^./files/(.)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*.php)$ $1 last;
rewrite ^ /index.php last;
}
[/php]